package com.demo.dao.user;

import com.demo.entity.user.User;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.support.SqlSessionDaoSupport;
import org.springframework.stereotype.Repository;

import javax.annotation.Resource;

/**
 * http://www.cnblogs.com/wangmingshun/p/5674633.html
 * 3、采用抽象类org.mybatis.spring.support.SqlSessionDaoSupport提供SqlSession。
 * spring-mybatis.xml
 */
@Repository
public class UserDao2 extends SqlSessionDaoSupport {

    /*
      在spring-mybatis.xml中配置
     */
    //使用SqlSessionDaoSupport必须注意，此处源码1.1.1中有自动注入，1.2中取消了自动注入，需要手工注入，侵入性强
    //也可在spring-mybatis.xml中如下配置，但是这种有多少个dao就要配置到少个，多个dao就很麻烦。
    // <bean id="userDao" class="com.hua.saf.dao.UserDao">
    //    <property name="sqlSessionFactory" ref="sqlSessionFactory"/>
    //</bean
    @Resource
    public void setSqlSessionFactory(SqlSessionFactory sqlSessionFactory) {
        // TODO Auto-generated method stub
        super.setSqlSessionFactory(sqlSessionFactory);
    }

    public User getUser(int id) {
//        return this.getSqlSession().selectOne(this.getClass().getName() + ".getUser", 1);
        return this.getSqlSession().selectOne(this.getClass().getPackage().getName()
                +".UserDao" + ".getUser", id);
    }
}
